Cloud-based applications are software applications that employ services available over the Internet or over some other network to assist the applications in performing their tasks. In a typical scenario, a user installs a frontend client (e.g., an “app”) on a client device, which connects to a backend server over the Internet. The frontend client typically manages a user interface and performs local processing on the client device, whereas the backend server may access large databases, store user data, and perform computationally intensive tasks. Users currently enjoy a wide variety of cloud-based applications, including applications for data storage, video streaming, web conferencing, mapping, banking, and many others.
A common cloud-based application provides user data storage in the cloud. For example, a user installs a data storage client on the user's device and designates a local folder for storing files. Any time the user adds a file to the local folder, the data storage client automatically uploads the file to a backend system running in the cloud.
Some cloud-based applications automatically push changes in data stored in the cloud to various frontend clients. In one scenario, for example, a user runs an app on a smartphone as well as on a second device, such as a tablet computer. When the user runs the app on the smartphone, the app generates changes in a local file, which the app automatically uploads to the backend system running in the cloud. The backend system then accesses an account of the user, finds that the user's account is associated with both the smartphone and the tablet computer, and pushes the changes in the file to the tablet computer.